package com.starryx.sim.mvc.net.handler.impl;


import com.starryx.sim.mvc.net.handler.AbstractRequestHandler;
import com.starryx.sim.mvc.util.JsonUtil;
import io.netty.handler.codec.http.FullHttpRequest;
import io.netty.handler.codec.http.QueryStringDecoder;
import org.apache.commons.codec.CharEncoding;
import org.apache.commons.codec.Charsets;

import java.util.HashMap;
import java.util.List;
import java.util.Map;


public class GetMethodHandler extends AbstractRequestHandler {

	@Override
	protected String getParam(FullHttpRequest fullHttpRequest) {
		// 请求参数解码器，将 uri 传入，并设置字符集为 UTF_8
		QueryStringDecoder queryDecoder = new QueryStringDecoder(fullHttpRequest.uri(), Charsets.toCharset(CharEncoding.UTF_8));
		// 获取解码后的 map，key：参数名，value：参数列表
		Map<String, List<String>> parameters = queryDecoder.parameters();
		Map<String, Object> resultMap = new HashMap<>();
		parameters.forEach((k, v) -> {
			resultMap.put(k, v.size() == 1 ? v.get(0) : v);
		});
		return JsonUtil.toJson(resultMap);
	}

}
